package com.evaluationSystem.mapper;

import com.evaluationSystem.entity.Appraise;
import com.evaluationSystem.entity.Dimension;
import com.evaluationSystem.entity.dto.Fraction;
import com.evaluationSystem.entity.dto.ScoreDto;
import com.evaluationSystem.entity.vo.*;
import com.evaluationSystem.util.PageData;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;


public interface AppraiseMapper {
    AnalyseOwnVo getEvaluateObject(Appraise appraise);

    int getScoreByName(String userName, String reviewerName, String questionId);

    List<String> getScoreListByName(String userName, String questionId, Date dateTime);

    Integer getQuestionCountById(String questionId);

    Integer getScoreListByQueId(String questionId);

    Integer getAppraiseCount(String questionId);

    Integer getAppraiseShowCount(String questionId, String appraiserPhone);

    List<Appraise> getAppraiseList(Appraise appraise);

    void insertAppraise(Appraise appraise);

    List<Appraise> getScoreList(String appraiserId, String assessedName, String questionId);

    AnalyseDetailVo getScoringDetail(ScoreDto scoreDto);

    List<Appraise> countAppraiseList(Appraise appraise);

    void deleteAppraise(Map<String, Object> map);

    AppraiseDetail getAppraiseDetail(String appraiserPhone, String assessedId, String questionId);

    Integer getAppraiseAnalyseCount(String questionId);

    List<AnalyseListVo> appraiseAnalyseList(ScoreDto scoreDto);

    AnalyseInfoVo getAnalyseInfo(ScoreDto scoreDto);

    void updateAppraise(Appraise appraise);

    Set<String> queryAssessedPhoneList(String questionId, List appraiserPhoneList);

    PageData<Appraise> selectAppraiseList(Appraise appraise);

    List<Dimension> selezf(@Param("ppraise") String ppraise);

    List<AnalyseListVo.AppraiserUser> selectListquestionId(@Param("questionId") String questionId);

    AnalyseListVo.AppraiserUser getAppraiserUser(@Param("appraiserUsers")List<AnalyseListVo.AppraiserUser> appraiserUser);

    AnalyseOwnVo getEvaluateObjects(Appraise appraise);

    void deleteQuestionId(@Param("questionId")String questionId);


    List<Fraction> getfraction();
}
